local M = {
    'folke/zen-mode.nvim',
    event = 'VeryLazy',
    keys = {
        {
            '<leader>z',
            '<cmd>ZenMode<CR>',
            desc = 'Toggle Zen Mode',
        },
    },
}

function M.config()
    require('zen-mode').setup({
        window = {
            backdrop = 0.95, -- shade the backdrop of the Zen window. Set to 1 to keep the same as Normal
            -- height and width can be:
            -- * an absolute number of cells when > 1
            -- * a percentage of the width / height of the editor when <= 1
            -- * a function that returns the width or the height
            width = 110, -- width of the Zen window
            height = 0.85, -- height of the Zen window
            -- by default, no options are changed for the Zen window
            -- uncomment any of the options below, or add other vim.wo options you want to apply
            options = {
                signcolumn = 'no', -- disable signcolumn
                number = false, -- disable number column
                relativenumber = false, -- disable relative numbers
                cursorline = false, -- disable cursorline
                cursorcolumn = false, -- disable cursor column
                foldcolumn = '0', -- disable fold column
                list = false, -- disable whitespace characters
            },
        },
        plugins = {
            -- disable some global vim options (vim.o...)
            -- comment the lines to not apply the options
            options = {
                enabled = true,
                ruler = false, -- disables the ruler text in the cmd line area
                showcmd = false, -- disables the command in the last line of the screen
            },
            twilight = { enabled = true }, -- enable to start Twilight when zen mode opens
            gitsigns = { enabled = false }, -- disables git signs
            tmux = { enabled = false }, -- disables the tmux statusline
            -- this will change the font size on kitty when in zen mode
            -- to make this work, you need to set the following kitty options:
            -- - allow_remote_control socket-only
            -- - listen_on unix:/tmp/kitty
            kitty = {
                enabled = false,
                font = '+4', -- font size increment
            },
            -- this will change the font size on alacritty when in zen mode
            -- requires  Alacritty Version 0.10.0 or higher
            -- uses `alacritty msg` subcommand to change font size
            alacritty = {
                enabled = false,
                font = '14', -- font size
            },
            -- this will change the font size on wezterm when in zen mode
            -- See alse also the Plugins/Wezterm section in this projects README
            wezterm = {
                enabled = false,
                -- can be either an absolute font size or the number of incremental steps
                font = '+4', -- (10% increase per step)
            },
        },
        on_open = function()
            vim.cmd([[
			IndentBlanklineDisable
			ScrollbarHide
			set norelativenumber
			set nonumber
			Barbecue hide
			Gitsigns toggle_current_line_blame
			autocmd InsertEnter * set norelativenumber nonumber
			autocmd InsertLeave * set norelativenumber nonumber
			]])
        end,
        on_close = function()
            vim.cmd([[
			IndentBlanklineEnable
			ScrollbarShow
			set relativenumber
			Barbecue show
			Gitsigns toggle_current_line_blame
			autocmd InsertEnter * set norelativenumber number
			autocmd InsertLeave * set relativenumber
			]])
        end,
    })
end

return M
